﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NetFrameworkExtensions.PresentationLayer
{
  public interface IWindowManager
  {
    Guid Show(Func<object> controlCreator, IWindowContext context = null);

    void ShowDialog(object control, IWindowContext context = null);

    bool Activate(Guid windowIdentifier);

    Guid ActivateOrShow(Func<object> controlCreator, IWindowContext context = null);

    bool Close(object control, bool accept);

    bool Notify(object control, bool accept);

    IWindowContext CreateSubContext(Guid windowId);

    IWindowContext CreateSubContext(object control);

    IWindowContext GetWindowContext(Guid windowId);

    IWindowContext GetWindowContext(object control);

    bool ChangeIdentifier(object control, Guid newIdentifier);

    bool? Alert(string message, string caption, object state, bool allowCancel);

    bool? Confirm(string message, string caption, object state, bool allowCancel);
  }
}
